﻿using System;
using System.Collections.Generic;

namespace RrslLite.Dsl
{
    public interface IBatchCallBuilder<TTarget> : IBatchBuilder
    {
        IBatchCallBuilder<TTarget> WithQuery<TResult>(Func<TTarget, TResult> call, Action<TResult> handler);
        IBatchCallBuilder<TTarget> WithCommand(Action<TTarget> call, Action handler);

        IBatchCallBuilder<TTarget> WhenCompleted(Action<IEnumerable<BatchCallResult>> completedAction);
    }
}